1. Field of the Invention
The present invention relates generally to computerized methods for accessing databases, and in particular, to a computerized object-oriented method for inquiring and accessing hierarchical databases using a specialized syntax.
2. Description of Related Art
It is well known in the art to use database management systems, such as IBM""s IMS(trademark) (Information Management System) database management system, to manage computerized databases. Indeed, IMS(trademark) has been used for decades and remains in use today. Currently, there is a need to access such xe2x80x9clegacyxe2x80x9d databases using application programs developed by object-oriented programming systems (OOPS). However, there are few tools available to assist OOPS developers.
One method for allowing object-oriented application programs to access data in an IMS(trademark) database is through transaction wrappering, implemented in such products such as IBM""s VisualAge(trademark) IMS Connection. Transaction wrappering creates a class having methods that retrieve data from the IMS(trademark) database, create an object embodying the retrieved data, and manipulate the object in an object-oriented application program. The problem with this approach is that each object-oriented application requires substantial additional coding, both object-oriented and non-object-oriented, before it is able to access the data in the IMS(trademark) database.
Another approach to accessing data in a non-relational, non-object-oriented database is to translate the non-relational database to a relational database, and use existing object-oriented programming techniques developed for relational databases to access the data therein. The problem with this approach is that non-relational data, such as the hierarchical data found in an IMS(trademark) database, does not map well to a relational database.
In addition, hierarchical data may not map well to object-oriented application programs. For example, hierarchical database segment layouts in an IMS(trademark) database are defined in copybooks via different languages, e.g., COBOL, PL/1, Assembly, etc. The data types in copybooks describing hierarchical input and output data can be characters, integers, doubles, shorts, floats, arrays, structures, occurs, packed decimals, etc. Manipulating these different data types in object-oriented application programs often presents difficulties and challenges. Some data types, e.g., packed decimals or binary integers, often are misrepresented in C++ language. For example, C/C++ language terminates a string by a null character and a packed decimal data may contain a null as part of its data.
Thus, there is a need in the art for improved techniques for accessing hierarchical data using object-oriented frameworks.
To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method, apparatus, and article of manufacture for accessing a hierarchical database. The database is modeled into an objects framework, wherein the objects framework corresponds to application views, data structures, and data defined and stored in the database, as well as message queues. Data is retrieved from the objects framework in response to a query request received from an application program, wherein the query request conforms to a syntax that supports one or more data types used by the database system.
Various advantages and features of novelty, which characterize the invention, are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to accompanying descriptive matter, in which there is illustrated and described specific examples of an apparatus in accordance with the invention.